#include <cstdlib>
#include <iostream>

// 测试，在同一个进程中，即使调用其他可执行文件so.out，生成的coredump文件名中的%e取得是so.out，但使用gdb查看时，需要写最开始的可执行文件名，而不是so.out
int main() {
    const char* command = "../so.out"; // 替换为你的可执行文件名
    int result = system(command);
 
    if (result < 0) {
        std::cerr << "调用外部程序失败" << std::endl;
        return 1;
    }
 
    // 使用 WEXITSTATUS 获取子进程的退出状态
    int exit_status = WEXITSTATUS(result);
 
    if (exit_status == 0) {
        std::cout << "外部程序执行成功" << std::endl;
    } else {
        std::cerr << "外部程序执行失败，退出状态 " << exit_status << std::endl;
    }
 
    return exit_status;
}